TOC
1. Introduction * What is Game Programming * Where to find general informations * Game development ** Linux ** Windows ** Mac OS X(?) ** small comparison * General BlaBla * OS Specific Problems ** Linux ** Windows ** Mac OS X(?) 2. Languages * General Languages ** C/C++ ** Visual Basic ** Visual Basic .NET ** Java * Scripting Languages ** LUA ** Python ** JNI ** Scheme ** SWIG * Shader Languages ** High Level Shader Language/Cg ** GLslang 3. Tools * Programming: ** IDEs *** vim *** Emacs *** KDevelop *** Anjuta *** eclipse ** Tools *** GNU Debugger *** Valgrind ** BuildSystems *** Make **** Autotools ***** Autoconf ***** Automake *** Shell *** *-config scripts *** jam *** scons ** Version Management Systems *** cvs *** subversion ** Creating/Applying patches (patch, diff) * Content ** Drawing *** GIMP ** Vector based drawing *** Inkscape *** SodiPodi ** Modelling *** Blender *** Wings3D ** Audio *** SoundTracker ** Commercial *** ac3d *** maya 4. File Formats * Graphics ** png ** tga ** jpeg ** mng ** svg ** (bmp?) * Sound ** wav ** iff ** mp3 (not good because of licenses) ** ogg vorbis ** mod ** [xm * 3D ** model formats ** map formats ** application specific format 5. Libraries * Recommendations for Beginners * General Purpose Game Engines (containing graphics, input, audio, utility, eventually gui) ** SDL ** ClanLib ** Allegro ** NeL ** PLIB ** PyGame * Graphics libraries: ** 2D *** SDL_gfx *** ClanLib *** Allegro *** Native (but not recommended) **** X11 **** DGA **** XFB ** 3D *** OGRE *** CrystalSpace *** Irrlicht *** NeL *** PLIB *** OpenGL ** Native (though SDL recommended) *** GLX * Image HandlingLibraries: ** SDL_Image ** libpng ** libjpeg ** DevIL * Audio libraries: ** OpenAL ** SDL_mixer ** Allegro ** PLIB ** CrystalSpace ** NeL(?) * Native (not recommended I think) ** DirectSound ** OSS ** ALSA ** libmikmod ** libogg/vorbis * Utility libraries: ** PhysFS ** libxml2 * Network ** RakNet ** enet ** OpenTNL ** muscle ** others... ** (eventually *** SDL_net *** clan_net *** plib_net *** NeL) * Native ** Posix Sockets * GUI ** Crazy Eddie's GUI System ** ParaGUI * Physics ** ODE 6. Project Management * Typical Organisation: ** Hosting a project *** BerliOS *** SourceForge ** Version Management ** bugtracking *** Introduction ***Software **** BugZilla **** Mantis ** Homepage ** Forums ** Wiki ** mailing lists ** documentation ** making it public *** happypenguin *** freshmeat ** Why and When you need these. Link to tools that accomplish these tasks. * Deployment ** Building Static Binaries ** Desktop Icons ** Installers: Loki, others ** Create Packages or let them Package (debian, gentoo, redhat, suse, mandrake, ... distributions and how their package systems work) 7. Sucess/Failure Stories * Game Of the Month * Supertux ** Tools: C++, SDL, SDL_image, SDL_mixer ** Code and Algorithms: how levels are built and represented, game object system, collisition detection, config files/lisp, ... ** Development process: mailinglist, wiki ** Deployment: windows installer * NetPanzer ** Tools: C++, SDL, SDL_image, SDL_net, PhysFS ** Chalenges of porting directx -> SDL ** Development process: mailinglist, cvs ** Deployment: cross compiling, windows installer, static linux binaries ** Working with other tools: flexlay support for netpanzer 8. Programming techniques * Data structures ** Arrays ** Binary heaps ** Hash tables ** Linked lists ** Stacks ** Trees *** Balanced binary trees *** BSP trees *** Octrees and quadtrees * Error handling ** Exceptions ** Return values and/or flags ** Assertions ---- Open Dynamics Engine - open source: http://ode.org/ "The Irrlicht Engine is an open source high performance realtime 3D engine written and usable in C++ and also available for .NET languages. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines. ... there are lots of games in development that use the engine. ... bindings for java, perl, ruby, python, and so on. And best of all: It's completely free." http://irrlicht.sourceforge.net/ ----